// COMP710 GP Framework 2024
#ifndef __TEXTUREMANAGER_H_
#define __TEXTUREMANAGER_H_

// Library includes:
#include <string>
#include <map>

// Forward Declarations:
class Texture;

class TextureManager
{
	// Member methods:
public:
	~TextureManager();

	bool Initialize();
	//singleton method
	static TextureManager* Instance()
	{
		if (s_pInstance == 0)
		{
			s_pInstance = new TextureManager();
			return s_pInstance;
		}
		return s_pInstance;
	}
	Texture* GetTexture(const char* pcFilename);
protected:

private:
	TextureManager(){}
	TextureManager(const TextureManager& textureManager);
	TextureManager& operator=(const TextureManager& textureManager);

	// Member data:
public:

protected:
	std::map<std::string, Texture*> m_pLoadedTextures;

private:
	static TextureManager* s_pInstance;
};

#endif // __TEXTUREMANAGER_H_
